The feature msdos is included in the *features* list
and can be used for conditional evaluation of DOS-specific code.
Since the DOS operating system uses the backslash character \
as the directory separator and the backslash character is also the
Lisp escape character, a file name string that is specified within
XLISP-STAT, for example as an argument to the load command, must be
entered with two backslashes. For example, a file foo.lsp in
the subdirectory bar of the current directory would be loaded
using
(load "bar\\foo.lsp")
or by
(load "bar\\foo")
if the .lsp extension is dropped.
Since DOS imposes an 8-character limit on base file names, some
standard startup files have been renamed. If you have a file that uses
a longer name on other systems, you can use the second argument to the
require function to specify a specific file base name. For
example, the file regression.lsp that contains linear
regression code has been renamed to regress.lsp, and
require commands for this module are written as
(require "regression" #+msdos "regress")
The module name, and thus the provide command at the beginning
of the regression module file, are unchanged.
There are several features that are either missing, not yet
implemented, or only partially implemented:
- Clipping is not yet implemented in the graphics system. I have not yet
figured out how to remove clip regions from a device context.
- A mouse is essentially required for the graphics windows and dialogs.
A proper alternate keyboard interface is not yet available.
- The maximize button on the listener and on graphics windows is
effectively disabled – if you attempt to maximize a window it is
immediately changed back to normal size. The reason for this is that
strange things seem to happen when the menu bar is modified while
windows are maximized. You can maximize the MDI frame and then resize
windows within the frame.
- WXLS has access to all the memory Windows makes available to it,
but because of the segmented architecture of the 80X86 processor, no
single item larger than 64K can be allocated. This limits the total
number of elements in a Lisp array to 16K and the total size of a
numerical array used in the linear algebra functions to about 8K
elements. There is little guarantee that violations of these limits
will be handled gracefully.